package ar.com.larreta.grilla.client.ventanas;

import ar.com.larreta.grilla.client.Grilla;
import ar.com.larreta.intercambio.client.comunes.ListaDeTiposDeDirecciones;
import ar.com.larreta.intercambio.client.comunes.ListaDeTiposDeTelefonos;
import ar.com.larreta.intercambio.client.comunes.Telefono;
import ar.com.larreta.vista.client.BarraHerramientas;
import ar.com.larreta.vista.client.CajaDeTexto;
import ar.com.larreta.vista.client.Estado;
import ar.com.larreta.vista.client.ListaDesplegable;
import ar.com.larreta.vista.client.Mensajes;
import ar.com.larreta.vista.client.Ventana;

import com.extjs.gxt.ui.client.widget.toolbar.ToolBar;

public class VentanaTelefonos extends Ventana {

	public static final Integer TAMANIO_TEXTO_MENSAJE = 200;
	
	private ListaDesplegable tipoTelefono;
	private CajaDeTexto numero;

	private Grilla grilla;
	
	private Telefono telefono;
	
	public void setTelefono(Telefono telefono) {
		this.telefono = telefono;
	}

	public VentanaTelefonos(Grilla grilla) {
		super(Mensajes.getInstancia().get("msg.telefonos"), "");
		
		this.grilla = grilla;
		
		barraHerramientas = new BarraHerramientas(this, getAnchoVentana(), 25);
		add(barraHerramientas);
		
		setHeight(110);
		
		setModal(Boolean.TRUE);
		
		//FIXME: corregir para que solo aplique a telefonos y no a tipo de direcciones
		tipoTelefono = new ListaDesplegable(Mensajes.getInstancia().get("msg.tipotelefono"), null, new ListaDeTiposDeTelefonos(), "listaTipoTelefonos");
		registrarCampo(tipoTelefono.getCampoDesplegable());
		add(tipoTelefono.getHorizontal());
		
		
		numero = new CajaDeTexto(Mensajes.getInstancia().get("msg.numero"), null);
		numero.getCampoTexto().setWidth(TAMANIO_TEXTO_MENSAJE);
		numero.getCampoTexto().setAllowBlank(Boolean.FALSE);
		registrarCampo(numero.getCampoTexto());
		add(numero.getHorizontal());
		
	}
	
	public void cancelando(){
		cambiarEstadoACreacion();
		this.hide();
	}

	public void confirmando(){
		if (esValido()) {
			if (estado.equals(Estado.CREACION)){
				telefono = new Telefono();
			}	
			
			telefono.setTipoTelefono(tipoTelefono.getCampoDesplegable().getValue());
			telefono.setNumero((String) numero.getCampoTexto().getValue());
			
			if (estado.equals(Estado.CREACION)){
				grilla.agregarDato(telefono);
			}

			grilla.load();
			this.hide();
		}
	}

	public ListaDesplegable getTipoTelefono() {
		return tipoTelefono;
	}

	public CajaDeTexto getNumero() {
		return numero;
	}
}
